home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacHack 1997
/
MacHack 1997.toast
/
Hacks
/
Hacks ’96
/
PredatorPrey
/
MainMenu.c
< prev
next >
Wrap
Text File
|
1996-06-22
|
5KB
|
231 lines
/* MainMenu.c */
/* Created 930522 09:34 AM by AppMaker */
#include <Types.h>
#include <Quickdraw.h>
#include <Controls.h>
#include <Dialogs.h>
#include <Events.h>
#include <Lists.h>
#include <Menus.h>
#include <TextEdit.h>
#include "Globals.h"
#include "ResourceDefs.h"
#include "Miscellany.h"
#include "PredatorPrey.h"
#include "FileM.h"
#include "EditM.h"
/*#include "ViewM.h"*/
#include <Desk.h>
#include <ToolUtils.h>
#include "MainMenu.h"
static void Enable (short itemNr,
Boolean enabled);
static void EnableTitle (MenuHandle menu,
Boolean enabled);
static void DoApple (short itemNr);
void mainMenu_seg() {} /* for reference in "UnloadSeg()" calls */
/*----------*/
void InitTitles (void)
{
/*InitFileM ();*/
/* InitEditM ();*/
/* InitViewM ();*/
} /*InitTitles*/
/*----------*/
/*void LoadMenus (void)*/
/*{*/
/* AppleMenu = GetMenu (AppleID);*/
/* FailNilResource ((Handle)AppleMenu);*/
/* AddResMenu (AppleMenu, 'DRVR');*/
/* FileMenu = GetMenu (FileID);*/
/* EditMenu = GetMenu (EditID);*/
/* FormulasMenu = GetMenu (FormulasID);*/
/* OptionsMenu = GetMenu (OptionsID);*/
/* ViewMenu = GetMenu (ViewID);*/
/* */
/* InsertMenu (AppleMenu, 0);*/
/* InsertMenu (FileMenu, 0);*/
/* InsertMenu (EditMenu, 0);*/
/* InsertMenu (FormulasMenu, 0);*/
/* InsertMenu (OptionsMenu, 0);*/
/* InsertMenu (ViewMenu, 0);*/
/* */
/* DrawMenuBar ();*/
/*}*/ /*LoadMenus*/
/*----------*/
/*static void DoAbout (void)*/
/*{*/
/* short itemNr;*/
/**/
/* itemNr = Alert (AboutID, nil);*/
/*}*/ /*DoAbout*/
/*----------*/
/*static void DoApple (short itemNr)*/
/*{*/
/* Str255 name;*/
/* short refNum;*/
/**/
/* switch (itemNr) {*/
/* case AppleAbout:*/
/* DoAbout ();*/
/* break;*/
/* */
/* default:*/
/* GetItem (AppleMenu, itemNr, name);*/
/* refNum = OpenDeskAcc (name);*/
/* break;*/
/* } /*switch»*/
/*}*/ /*DoApple*/
/*----------*/
void DoMenu (long menuChoice)
{
short menuID;
short itemNr;
menuID = HiWord (menuChoice);
itemNr = LoWord (menuChoice);
switch (menuID) {
case 0:
/*Do nothing*/;
break;
/* case AppleID:*/
/* DoApple (itemNr);*/
/* break;*/
/* case FileID:*/
/* DoFile (itemNr); /* FileM.c »*/
/* break;*/
case EditID:
DoEdit (itemNr);
break;
/* case FormulasID:*/
/* DoFormulas (itemNr); /* FormulasM.c »*/
/* break;*/
/* case OptionsID:*/
/* DoOptions (itemNr);*/
/* break;*/
/* case ViewID:*/
/* DoView (itemNr);*/
/* break;*/
/* */
} /*switch*/
HiliteMenu (0);
} /*DoMenu*/
/*----------*/
MenuHandle menu;
Boolean menuBarChanged;
/*----------*/
static void Enable (short itemNr,
Boolean enabled)
{
if (enabled) {
EnableItem (menu, itemNr);
} else {
DisableItem (menu, itemNr);
}
} /*Enable*/
/*----------*/
static void EnableTitle (MenuHandle menu,
Boolean enabled)
{
if (enabled != ((**menu).enableFlags & 1)) {
menuBarChanged = true;
}
if (enabled) {
EnableItem (menu, 0);
} else {
DisableItem (menu, 0);
}
} /*EnableTitle*/
/*----------*/
void UpdateMenus (void)
{
WindowPeek frontPeek;
Boolean isFront; /*is there a front window?*/
Boolean isCur; /*is there a current window?*/
Boolean isDirty; /*is it dirty?*/
Boolean hasFile; /*does it have a file?*/
Boolean isSelected; /*is anything selected?*/
Boolean isDesk; /*is the front window a desk acc?*/
Boolean isText; /*is there a current text field?*/
Boolean isScrap; /*is there any scrap?*/
menuBarChanged = false;
isFront = (FrontWindow () != nil);
isCur = (curWindow != nil);
isDirty = false;
hasFile = false;
isSelected = false;
if (isCur) {
isDirty = cur->dirty;
hasFile = (cur->fileNum != 0);
}
isDesk = false;
if (isFront) {
frontPeek = (WindowPeek) FrontWindow ();
isDesk = (frontPeek->windowKind < 0);
}
isText = isCur;
isScrap = false;
if (isText) {
/*if(cur->text != nil)*/
/* {*/
/* isSelected = ((**(cur->text)).selStart != (**(cur->text)).selEnd);*/
/* isScrap = (TEGetScrapLen () > 0);*/
/* }*/
// if (cur->rText != nil)
// {
// isSelected = ((**(cur->rText)).selStart != (**(cur->rText)).selEnd);
// isScrap = (TEGetScrapLen () > 0);
// }
}
/* menu = FileMenu;*/
/* Enable (FileClose, isFront);*/
/* Enable (FileSave, isDirty);*/
/* Enable (FileSaveAs, isCur);*/
/* Enable (FileRevert, isDirty);*/
menu = gEditMenu;
if (isFront) {
Enable (EditUndo, isDesk);
Enable (EditCut, isDesk || isSelected);
Enable (EditCopy, isDesk || isSelected);
Enable (EditPaste, isDesk || isScrap);
Enable (EditClear, isDesk || isSelected);
/* Enable (EditSelectAll, isText);*/
/* Enable (EditCreatePublisher, sysConfig.hasEditionMgr && isSelected);*/
/* Enable (EditSubscribeTo, sysConfig.hasEditionMgr && (!isSelected));*/
/* Enable (EditSubscriberOptions, false /* (publisherSelected || subscriberSelected) »);*/
}
EnableTitle (gEditMenu, isFront);
if (menuBarChanged) {
DrawMenuBar ();
}
} /*UpdateMenus*/
/* MainMenu */